package com.mapper;

import com.entity.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProducedMapper {
    //  获取所有生产计划
    List<ProductionOrder> findAll(ProductionOrder productionOrder);
    List<ProductionOrder> findAll2();
    //  查询全部的生产部门
    public List<Department> findAllDept();
    //  添加生产单
    void add(ProductionOrder productionOrder);
    //  修改生产单
    void modify(ProductionOrder productionOrder);
    //  删除生产单
    void delete(ProductionOrder productionOrder);
    //  批量删除生产单
    void deleteBatch(@Param("ids") int[] ids);


    //  获取所有生产领料
    List<ProductionReceive> findAllReceive(ProductionReceive productionReceive);
    List<ProductionReceive> findAllReceive2();
    //  添加生产领料
    void addReceive(ProductionReceive productionReceive);
    //  修改生产领料
    void modifyReceive(ProductionReceive productionReceive);
    //  删除生产领料
    void deleteM(ProductionReceive productionReceive);
    //  批量删除生产领料
    void deleteBatchM(@Param("ids") int[] ids);


    //  获取所有开始生产状况
    List<ProductionProduced> findAllProduced(ProductionProduced productionProduced);
    //  查询全部产品
    List<ProductionGoods> findAllGoods();
    //  查询全部原料
    List<ProductionRaws> findAllRaws();
    //  查询全部未生产的单号
    List<ProductionOrder> findAllPoids();
    //  根据id获取生产单
    ProductionOrder findOrder(int id);
    //  查询全部生产员工
    List<ProductionEmployee> findAllEmployees();
    //  根据部门查询生产员工
    List<ProductionEmployee> findEmployeesByDept(ProductionOrder productionOrder);
    //  根据名字查询员工id
    List<ProductionEmployee> findEmployeeByName(String name);
    //  开始生产
    void addProduced(ProductionProduced productionProduced);
    void modifyPstate(ProductionOrder productionOrder);
    //  删除生产情况
    void deleteProduced(ProductionProduced productionProduced);
    void deleteBatchProduced(@Param("ids") int[] ids);
    //  修改生产状态
    void modifyProduced(ProductionProduced productionProduced);
    //  结束生产
    void overProduced(ProductionProduced productionProduced);

    //  获取所有完成生产的情况
    List<ProductionProduced> findAllProducedOver(ProductionProduced productionProduced);
    //  获取所有仓储情况
    List<ProductionStore> findAllProducedStore();
    //  查询指定的物品仓储
    ProductionStore findProducedStoreBySname(ProductionStore productionStore);
    //  增加原料存储
    void modifyProducedStore(ProductionStore productionStore);
}
